Skip to main content
POST
[DEPRECATED] Add a signer to document
You’re viewing API version 2026-09, which is deprecated and stops working on October 1, 2027. To see the current version, select 2026-10 in the menu at the top of the sidebar. To move your integration, see Upgrading to 2026-10.

Authorizations

Authorization
string
header
required

Personal API key, e.g. Authorization: Bearer sajn_sk_.... Not scope-limited — acts as the issuing user.

Headers

authorization
string
required

Bearer token for API authentication

Idempotency-Key
string

Makes retries safe. A retry with the same key and the same request replays the stored response for 24 hours (header Idempotent-Replayed: true); the same key with a different request returns 400.

Maximum string length: 255

Path Parameters

id
string
required

Body

application/json

Body

Create signer request

contactId
string
required

ID of the contact to add as a signer

Minimum string length: 1
role
any
default:SIGNER
required

Party role: SIGNER, ORGANIZER, or REVIEWER. (ACCEPTOR is deprecated and treated as SIGNER.)

signingOrder
number | null

Signing order for sequential signing (ignored for parallel)

deliveryMethod
enum<string>

How to send to this signer: EMAIL (default), SMS, or NONE

Available options:
EMAIL,
SMS,
NONE,
IN_APP
requiredSignature
enum<string>

Signature type required: DRAWING (default), BANKID, or CLICK_TO_SIGN

Available options:
NONE,
DRAWING,
SE_BANKID,
MANUAL,
CLICK_TO_SIGN,
NO_BANKID_BIOMETRIC,
NO_BANKID_HIGH,
NO_QES,
DK_MITID,
DK_MITID_ERHVERV,
FI_FTN,
NL_IDIN
twoStepVerification
enum<string>

Two-step verification: NONE (default), SMS_BEFORE_SIGNING, EMAIL_BEFORE_SIGNING, or BANKID_BEFORE_SIGNING

Available options:
NONE,
SMS_BEFORE_SIGNING,
EMAIL_BEFORE_SIGNING,
PIN_BEFORE_SIGNING,
SE_BANKID_BEFORE_SIGNING,
NO_BANKID_BIOMETRIC_BEFORE_SIGNING,
NO_BANKID_HIGH_BEFORE_SIGNING,
DK_MITID_BEFORE_SIGNING,
DK_MITID_ERHVERV_BEFORE_SIGNING,
FI_FTN_BEFORE_SIGNING,
NL_IDIN_BEFORE_SIGNING

Response

200

id
string
required

Unique signer identifier

documentId
string
required

Document ID this signer belongs to

name
string
required

Signer full name

role
enum<string>
required

Signer role: SIGNER, ORGANIZER, or REVIEWER

Available options:
SIGNER,
ORGANIZER,
REVIEWER
signedAt
string<date-time> | null
required

Date and time when the signer signed (null if not signed)

readStatus
enum<string>
required

Read status: NOT_OPENED, OPENED, or READ

Available options:
NOT_OPENED,
OPENED,
READ
signingStatus
enum<string>
required

Signing status: NOT_SIGNED, SIGNED, or REJECTED

Available options:
NOT_SIGNED,
SIGNED,
REJECTED
deliveryMethod
enum<string> | null
required

How documents are sent to this signer: EMAIL, SMS, or NONE

Available options:
EMAIL,
SMS,
NONE,
IN_APP
requiredSignature
enum<string> | null
required

Signature type required: DRAWING, BANKID, CLICK_TO_SIGN, etc.

Available options:
NONE,
DRAWING,
BANKID,
MANUAL,
CLICK_TO_SIGN,
NO_BANKID_BIOMETRIC,
NO_BANKID_HIGH,
NO_QES,
DK_MITID,
DK_MITID_ERHVERV,
FI_FTN,
NL_IDIN
twoStepVerification
enum<string> | null
required

Two-step verification: NONE, SMS_BEFORE_SIGNING, EMAIL_BEFORE_SIGNING, or BANKID_BEFORE_SIGNING

Available options:
NONE,
PIN_BEFORE_SIGNING,
SMS_BEFORE_SIGNING,
EMAIL_BEFORE_SIGNING,
BANKID_BEFORE_SIGNING,
NO_BANKID_BIOMETRIC_BEFORE_SIGNING,
NO_BANKID_HIGH_BEFORE_SIGNING,
DK_MITID_BEFORE_SIGNING,
DK_MITID_ERHVERV_BEFORE_SIGNING,
FI_FTN_BEFORE_SIGNING,
NL_IDIN_BEFORE_SIGNING
sendStatus
enum<string> | null
required

Send status: NOT_SENT, SENT, DELIVERED, BOUNCED, or FAILED

Available options:
NOT_SENT,
SENT,
DELIVERED,
BOUNCED,
FAILED
identityVerified
boolean
required

True when an eID verified this signer — either by signing with one or by passing an eID verification gate.

identityMismatch
boolean
required

True when an eID completed, the identity did not match the intended signer, and the signature was still recorded — read GET /api/v1/documents/{id}/signatures to see what differed. Stays false when the workspace requires an SSN match to sign and the attempt was refused, because no signature exists; those attempts appear only in the document audit trail.

email
string<email> | null

Signer email address

Pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
phone
string | null

Signer phone number (for SMS notifications)

companyName
string | null

Company name

companyRole
string | null

Role/title within the company

companyOrgNumber
string | null

Company organization number

externalId
string | null

Your external reference ID for this signer

companyId
string | null

Linked company ID

ssn
string | null

National identity number supplied by the sender when creating the document. Optional — BankID works without it, falling back to a name check. This is input and is never overwritten with what the eID verified: read the verified identity from GET /api/v1/documents/{id}/signatures.

country
string | null

ISO 3166-1 alpha-3 country code for the signer (e.g. SWE)

signingOrder
number | null

Order for sequential signing (null for parallel)